#!/bin/bash
#nohup用途：不挂断地运行命令，&用途：在后台运行。如：nohup command &
#2>&1 的意思就是将标准错误重定向到标准输出

#1 获取输入参数个数，如果没有参数，直接退出
FILE_COUNT=$#
if((FILE_COUNT==0)); then
    echo ">>> 错误：未传参数！传的命令需要引号：\"command;command\""
    echo "  用法：start_stop.sh start \"command\"()"
    echo "  用法：start_stop.sh stop \"command\"(进程名，如nginx)"
    exit;
fi
# 全局变量
OPTION=$1
CMD=$2

#>>>>>>>>>>>>>>>>>>>>>> 取hosts中主机开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>
SELF_HOST_NAME=$(hostname)
#IFS设置IFS环境变量，这个变量是用来定义分隔符类型的。默认的分隔符为空格、换行符、tab。

IFS_old=$IFS
IFS=$'\n'
for host in `grep -v localhost /etc/hosts | awk '{print($2)}'`; do
    # 执行开始
    case $OPTION in
    "start"){
    for i in $host
        do
            echo " --------启动 $i 后台运行命令-------"
            ssh $host "nohup $CMD 2>&1 &"
        done
    };;
    "stop"){
        for i in $host
        do
            echo " --------停止 $i kill进程命令-------"
            ssh $host "ps -ef | grep $CMD | grep -v grep |awk '{print \$2}' | xargs kill"
        done
    };;
    esac
    #执行开始执行
done
#将IFS变量还原为默认值
IFS=$IFS_old
#>>>>>>>>>>>>>>>>>>>>>> 取hosts中主机结束 >>>>>>>>>>>>>>>>>>>>>>>>>>>>







